// 使用统一的API响应类型
// 不需要导入，直接使用API命名空间

/**
 * 系统角色类型定义
 */

/**
 * 角色查询
 */
export interface RoleQuery {
  /** 关键词搜索（角色名称、角色编码） */
  keyword?: string
  /** 状态 */
  status?: number
  /** 当前页码 */
  page: number
  /** 每页条数 */
  pageSize: number
  /** 创建时间范围 */
  dateRange?: string[]
}

/**
 * 系统角色
 */
export interface Role {
  /** 角色ID */
  id: string
  /** 角色名称 */
  roleName: string
  /** 角色编码 */
  roleCode: string
  /** 角色描述 */
  remark?: string
  /** 排序号 */
  roleSort: number
  /** 状态(0-禁用, 1-正常) */
  status: number
  /** 创建时间 */
  createTime: string
  /** 更新时间 */
  updateTime: string
  /** 菜单权限ID列表 */
  menuIds: string[]
  /** 状态加载中 */
  statusLoading?: boolean
  /** 操作是否成功 */
  success?: boolean
  /** 操作消息 */
  message?: string
}

/**
 * 创建角色
 */
export interface CreateRole {
  /** 角色名称 */
  roleName: string
  /** 角色编码 */
  roleCode: string
  /** 角色描述 */
  remark?: string
  /** 排序号 */
  roleSort: number
  /** 状态 */
  status: number
  /** 菜单权限ID列表 */
  menuIds?: string[]
}

/**
 * 更新角色
 */
export interface UpdateRole {
  /** 角色ID */
  id?: string
  /** 角色名称 */
  roleName?: string
  /** 角色编码 */
  roleCode?: string
  /** 角色描述 */
  remark?: string
  /** 排序号 */
  roleSort?: number
  /** 状态 */
  status?: number
  /** 菜单权限ID列表 */
  menuIds?: string[]
}

/**
 * 角色列表结果
 */
export interface RoleList {
  /** 角色列表 */
  list: Role[]
  /** 总数 */
  total: number
}

/**
 * 角色权限树节点
 */
export interface RolePermissionTreeNode {
  /** 节点ID */
  id: string
  /** 节点名称 */
  name: string
  /** 子节点 */
  children?: RolePermissionTreeNode[]
}

/**
 * 角色权限数据
 */
export interface RolePermissionData {
  /** 权限树 */
  permissionTree: RolePermissionTreeNode[]
  /** 已选中的权限ID列表 */
  checkedKeys: string[]
}

/**
 * 权限树节点
 */
export interface PermissionTree {
  id: string
  parentId: string
  name: string
  type: number
  permission: string
  icon?: string
  path?: string
  component?: string
  sort: number
  status: number
  children?: PermissionTree[]
} 